<?php
class MgUsuariosController extends AppController {

	var $name = 'MgUsuarios';
	var $helpers = array('Html', 'Form','Javascript');
	var $controllers = array('RequestHandler');
	var $components = array('Usuario');

	function index() {
		$this->MgUsuario->recursive = 0;
		$this->set('mgUsuarios', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalido Usuario.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('mgUsuario', $this->MgUsuario->read(null, $id));

	}

	function add() {
		if (!empty($this->data)) {
			$this->MgUsuario->create();
			if ($this->MgUsuario->save($this->data)) {
				$this->Session->setFlash(__('Usuario ha sido guardado', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('Usuario no pudo guardarse. Por favor, intente de nuevo.', true));
			}
		}
		$mgTipoUsuarios = $this->MgUsuario->MgTipoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$mgEstadoUsuarios = $this->MgUsuario->MgEstadoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$this->set(compact('mgTipoUsuarios', 'mgEstadoUsuarios'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalido Usuario', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->MgUsuario->save($this->data)) {
				$this->Session->setFlash(__('Usuario ha sido guardado', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('Usuario no pudo guardarse. Por favor, intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->MgUsuario->read(null, $id);
		}
		$mgTipoUsuarios = $this->MgUsuario->MgTipoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$mgEstadoUsuarios = $this->MgUsuario->MgEstadoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$this->set(compact('mgTipoUsuarios', 'mgEstadoUsuarios'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalido id para MgUsuario', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->MgUsuario->delete($id)) {
			$this->Session->setFlash(__('Usuario borrado', true));
			$this->redirect(array('action'=>'index'));
		}
	}


	function login()
	{			
		$this->layout = 'login_layout';		
		$hash = $this->Usuario->getHash($this->data['MgUsuario']['usuario'], $this->data['MgUsuario']['clave']);
		echo $hash;
	}

	function logout()
	{
		$this->redirect($this->Auth->logout());
	}
	
	function clave($id = null) {		
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalido Usuario', true));
			$this->redirect(array('action'=>'index'));
		}		
		if (!empty($this->data)) {
			$hash = $this->Usuario->getHash($this->data['MgUsuario']['usuario'], $this->data['MgUsuario']['clave_x']);
			echo $hash;
			if($this->data['MgUsuario']['clave'] == $hash) {
				if ($this->MgUsuario->save($this->data)) {
					$this->Session->setFlash(__('Clave guardada', true));
					$this->redirect(array('action'=>'index'));
				} else {
					$this->Session->setFlash(__('Clave no pudo guardarse. Por favor, intente de nuevo.', true));
					$this->redirect(array('action'=>'index'));
				}
			} else {
				$this->Session->setFlash(__('Las nuevas claves no concuerdan.', true));
				$this->redirect(array('action'=>'index'));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->MgUsuario->read(null, $id);
		}
		$user = $this->MgUsuario->find('first', array('conditions'=>array('MgUsuario.mg_tipo_usuario_id'=>$id)));
		$this->set('tipo_usuario', $user['MgUsuario']['mg_tipo_usuario_id']);
		$mgTipoUsuarios = $this->MgUsuario->MgTipoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$mgEstadoUsuarios = $this->MgUsuario->MgEstadoUsuario->find('list',array('fields'=>array('descripcion'),'order'=>'descripcion ASC'));
		$this->set(compact('mgTipoUsuarios', 'mgEstadoUsuarios'));
	}


}
?>